.\" $Id$
.TH HDF 1 "November 2019" "THG HDF 4.2.15"
.SH NAME
hdf \- Hierarchical Data Format library
.SH SYNOPSIS
.ft B
-lmfhdf -ldf -ljpeg -lz [ -lsz ]
.sp 0
{HDFLIBDIR}/libmfhdf.a {HDFLIBDIR}/libdf.a {JPEGLIBDIR}/libjpeg.a 
.sp 0
{GZIPLIBDIR}/libz.a [{SZIPLIBDIR}/libsz.a]

.SH DESCRIPTION
HDF is a multi-object file format that facilitates the transfer of various 
types of scientific data between machines and operating systems.  See
http://www.hdfgroup.org/release4/platforms.html for a list of platforms
currently supported.

HDF allows self-definitions of data content and easy extensibility for
future enhancements or compatibility with other standard formats. HDF
includes Fortran and C calling interfaces, and utilities for manipulating,
viewing, and analyzing data in HDF files. The HDF library contains
interfaces for storing and retrieving compressed or uncompressed 8-bit
and 24-bit raster images with palettes, n-Dimensional scientific datasets
and binary tables. An interface is also included that allows arbitrary
grouping of other HDF objects.

.SS "HDF Raster Images"
HDF supports the storing of both 8-bit and 24-bit raster images.  Beside
storing information about the dimensions and palette of a raster image, HDF
supports raster image compression.  In previous versions of HDF
(DF interfaces,) Run-length encoding and Imcomp compression were both
supported.  The currently supported compression methods include simple
RLE, N-bit, Skipping huffman, Gzip, Szip, and JPEG.  Although no longer
support Imcomp compression, the library can read images with Imcomp compression.

.SS "HDF Scientific Data Sets"
Scientific Data Sets (SDSs) are useful for storing n-Dimensional gridded data.
The actual data in the dataset can be of any of the "standard" number types: 
8, 16 and 32bit signed and unsigned integers and 32 and 64bit floating point 
values.  In addition, a certain amount of meta-data can be stored with an 
SDS including: 
.nf 

  o The coordinate system to use when interpreting or displaying the data.
  o Scales to be used for each dimension.
  o Labels for each dimension and the dataset as a whole.
  o Units for each dimension and the data.
  o The valid max and min values for the data. 
  o Calibration information for the data.
  o Fill or missing value information. 
  o Ability of having more than one file open at a time.
  o A more general framework for meta-data within the SDS data-model
    (allowing 'name = value' style meta-data.)
  o Support for an "unlimited dimension" in the SDS data-model, making
    it possible to append planes to an array along one dimension.
.fi
.SS "HDF Annotations"
Any object in an HDF file can have annotations associated with it.  There are a
number of types of annotations: 
.nf

  o Labels are assumed to be short strings giving the "name" of a 
    data object. 
  o Descriptions are longer text segments that are useful for giving 
    more indepth information about a data object 
  o File annotations are assumed to apply to all of the objects in a 
    single file.
.fi
.SS "HDF Vset Interfaces"
The Vset module provides
interfaces to two basic HDF building blocks.  Vgroups are generic grouping
elements allowing a user to associate related objects within an HDF file.  As
Vgroups can contain other Vgroups, it is possible to build a hierarchical file.
Vdatas are data structures made up of fields and records.  Data is organized into "fields" within each 
Vdata.  Each field is identified by a unique "fieldname".  The type of each 
field may be any of the basic number types that HDF supports.  Fields of 
different types may exist within the same Vdata.  

By combining Vdatas in Vgroups it is possible to represent higher level data
constructs: mesh data, multi-variate datasets, sparse matrices, finite-element
data, spreadsheets, splines, non-Cartesian coordinate data, etc.

.SS "HDF and netCDF"
Starting with HDF version 3.3, netCDF v.2.3.2 of Unidata is supported with the
SD multifile interface. SD and netCDF interfaces can read both netCDF files
and multi-dimensional arrays (SDS) stored in the HDF4 files transparently.
For more information, see Chapter 3, "Scientific Data Sets", of the HDF
User's Guide.

To disable netCDF interfaces in the HDF library, configure the library using
--disable-netcdf flag and rebuild it.

.SS "EXAMPLES"
All HDF routines require the header "hdf.h" to be included in the C
source file, unless if the SD routines are used, then the header "mfhdf.h"
should be included instead.

Fortran programs should use "dffunc.inc" for all interfaces, "mffunc.inc"
for the SD interfaces, and "hdf.inc" for non-SD interfaces.

To compile a program that makes HDF calls on most Unix platforms.

   (FORTRAN):
.na 
   {HDFLIBDIR}/bin/h4fc myprog.f 

   (C):
.na 
   {HDFLIBDIR}/bin/h4cc myprog.c 

.fi

.SH DOCUMENTATION

The HDF web site is located at http://www.hdfgroup.org/.

For the vast majority of users, the "HDF User's Guide" and 
"HDF Reference Manual" should be sufficient. 

These documents can be viewed or downloaded at
.sp 0
http://www.hdfgroup.org/products/hdf4/.


.SH VENDOR
The HDF Group
.sp 0
1800 South Oak Street, Suite 203
.sp 0
Champaign, IL 61820
.sp 0
USA 
.sp 0
www.hdfgroup.org

.SH VERSION
4.2.15 
.SH LICENSE & SOURCE AVAILABILITY
Copyright by The HDF Group.
.sp 0
Copyright by the Board of Trustees of the University of Illinois.

All rights reserved.

This file is part of HDF.  The full HDF copyright notice, including
terms governing use, modification, and redistribution, is contained in
the COPYING file, which can be found at the root of the source code
distribution tree, or in https://support.hdfgroup.org/ftp/HDF/releases/.
.sp 0
If you do not have access to either file, you may request a copy from
help@hdfgroup.org.

.SH CONTACT & HELP
The HDF Group
.sp 0
Email: help@hdfgroup.org

.SH FILES
.PD 0
.TP 30
.B /usr/local/lib/hdf/{libmfhdf.a,libdf.a,libjpeg.a,libz.a [,libsz.a]}
hdf libraries
.TP 30
.B /usr/local/bin
Location of most hdf utilities
.TP 30
.B /usr/local/include/hdf
Location of include file hdf.h, mfhdf.h, and others
.PD

